#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"anomalie.h"
#include"personnel.h"
#include"patient.h"





/*******************************/
//tester l'endroit du capteur
int tester_capteur(char cap[])
{int n1,n2,n3,n4,n5;
 n1=strcump(cap,"B01");n2=strcump(cap,"M01");n3=strcump(cap,"Sout");n4=strcump(cap,"Pout")
n5=strcump(cap,"Ebola");
if(n1=0||n2=0||n3=0||n4=0)
  return 0
else if(n5=0)
 return -1;
else
return 1;
}





/********************************/
//chercher si le parcour est deja definie ou pas
int chercher_parcoure(Parcoure t[],int n,int id)
{int i=0;
while(t[i].ide!=id &&t[i].nbr!=-1&& i<n)
i++;
  if(i<n)
return i;
  else 
return -1;
}





/***********************************/
// definr le parcour des identifiant a partir du fichier event 
void remplir_mvt_camp(char Event[],Parcoure t[],int*n)
{int a,b,c,n1,n2,long int I,char s[20];
FILE *f;
f=fopen(Event,"r");
if(f!=NULL)
{
  while(!=feof)
  {
	fscanf(f,"%d:%d:%d        %ld        %s",a,b,c,I,s);
	n1=chercher_parcoure(t,*n,I);
	n2=tester_capteur(s);
	if(n1==-1)
	  { 
	    t[n].ide=I;
	    
		if(n2==1);
	          strcopy(t[n].mvt,s);t[n].nbr=t[n].nbr+1;
	         else if(n2==-1)
			t[i].nbre=-1;

             if(t[n].nbr/10==9)
	      t[n]=t[n]+1;


 	    *n=*n+1;
	  }
	else
	  { if(n2==1)
	    {
	     strcat(t[n1].mvt,s);
	     t[n1].nbr=t[n1].nbr+1;
            }
 	    else
	     t[n1].nbr=-1;
	     

          if(t[n].nbr/10==9)
	    t[n1]=t[n1]+1;
	  }
	
   }
}
else
printf("\n impossible d ouvrire le fichier Event.txt");
fclose(f);
}




/***************************************************/
//tester le parcour d un  identifiant
int tester_chaine(char ch[100],int *n)
{int i,j=0;char ch1[50];
for(i=*n,i<*n+27;i++)
{
  ch1[j]=ch[i];
   j++;
}
if(strcmp(ch1,"E01C01S01L01L02C02V0&I01D01B01")!=0)
 return -1;
else if(ch[*n+28]!='\0'
{
return 0;
*n=*n+27;
}
else
 return 1;
  }




/***************************/
//tester l'anomalie
char* tester_parcoure(Parcoure p)
{int n,n1=0
//tester identidfiant personnel//

n=chercher_personnel(p.ide);
   if(n==0)
   return ("Patient");
//detecter par le capteur Ebola//

if(p.nbr==-1)
return("Ebola");
// a depasser un capteur//
if(p.nbr/10!=9)
  return("capteur_manque");
else
{ do
  n=tester_chaine(p.mvt,&n1);
  while(n!=1||n!=-1);
//tout est normal//
  if(n==1)
   return ("normale");
  else

    return("innormale");//non respect du trajet//
}





/**************************************************/
//extraire les identifiant avec anomalie
void detecter_alerte(Parcoure t[],int n,Anomalie t1[],int *n1)
{ 
for(i=0;i<n;i++)
{ ch=tester_parcoure(t[i]);
//s'il 
if(ch!="normale")
 {
    t1[*n1].ide=p.ide
    t1[*n1].type=ch;
    *n1=*n1+1;
 }
}
}



/**************************************************/
void afficher_parcour(char Event[],lon int ide)
{int a,b,c;long int I,char s[30];
FILE*f;
f=fopen(Event,"r");
if(f!=NULL)
{ while(!=feof)
   {
	fscanf(f,"%d:%d:%d        %ld        %s",a,b,c,I,s);
	if( I==ide)
	{	
	 printf("\n l'identifiant %ld a ete au niveau du capteur %s au ",I,s);
     printf("%d H:%d M:%d S",a,b,c);
    }
   }
}
else
printf("\nImpossible d ouvrire le fichier event.txt")
fclose(f);
}






/********************************************************/
void afficher_alerte(Anomalie t[],int n)
{int i;
for(i=0;i<n;i++)
{printf("\ntype d anomalie: %s",t[i].type);
printf("\nson parcour aujourdhui:");
afficher_parcour("event.txt",t[i].type);
}

}
/********************************************************/
void gestion_anomalie(Anomalie t[],int *n)
{int i;
for(i=0;i<n;i++)
{if(t[i].type!="patient"{
   printf("\n tapez oui si le personnel %s est infecter",t[i].ide)
   scanf("%s",ch);
     if(strcmp(ch,oui)==0){
        suprimer_personnel("fichier_personnel",p.ide);
		ajouter_patient("ficher_patient",p.ide);}
}
else
printf("\le patient %s a ete en dehors du clinique");
}
/*********************************************************/
  







